package org.example;

public class EscapeAnalysisTest {
    public static void main(String[] args) {
        System.out.println("逃逸分析测试开始");  // 输出测试开始说明

        for (int i = 0; i < 100000; i++) {
            createObject();  // 调用创建对象的方法
        }

        // 打印内存使用情况
        System.out.println("当前内存使用情况: ");
        System.out.println("最大堆内存: " + (Runtime.getRuntime().maxMemory() / 1024 / 1024) + "MB");  // 输出最大堆内存
        System.out.println("当前堆内存总量: " + (Runtime.getRuntime().totalMemory() / 1024 / 1024) + "MB");  // 输出当前堆内存总量
        System.out.println("空闲内存: " + (Runtime.getRuntime().freeMemory() / 1024 / 1024) + "MB");  // 输出空闲内存

        System.out.println("逃逸分析测试完成");  // 输出测试完成说明
    }

    // 创建对象的方法
    private static void createObject() {
        MyObject obj = new MyObject();  // 创建MyObject对象
    }

    // 内部类
    static class MyObject {
        private int value;

        public MyObject() {
            this.value = 0;  // 初始化value
        }
    }

}
